home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / pcfig4th.zip / FIGED.SCR < prev    next >
Text File  |  1985-04-23  |  6KB  |  1 lines

  1.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 ( fig-FORTH PORTABLE EDITOR              WFR 01 MAY 79 )        FORTH DEFINITIONS HEX                                           : TEXT                                                            HERE C/L 1+ BLANKS WORD HERE PAD C/L 1+ CMOVE ;               : LINE                                                            DUP FFF0 AND 17 ?ERROR SCR @ (LINE) DROP ;                    VOCABULARY EDITOR IMMEDIATE HEX                                 : WHERE ( PRINT SCREEN # AND IMAGE OF ERROR )                     DUP B/SCR / DUP SCR ! ." Screen # " DECIMAL .                   SWAP C/L /MOD C/L * ROT BLOCK + CR C/L TYPE                     CR HERE C@ - SPACES 5E EMIT [COMPILE] EDITOR QUIT ;           EDITOR DEFINITIONS                                              : #LOCATE R# @ C/L /MOD ;                                       : #LEAD #LOCATE LINE SWAP ;                                     : #LAG #LEAD DUP >R + C/L R> - ;                                : -MOVE LINE C/L CMOVE UPDATE ;   -->                           ( fig-FORTH PORTABLE EDITOR, continued )                        : H                                                               LINE PAD 1+ C/L DUP PAD C! CMOVE ;                            : E                                                               LINE C/L BLANKS UPDATE ;                                      : S                                                               DUP 1 - 0E DO I LINE I 1+ -MOVE -1 +LOOP E ;                  : D                                                               DUP H 0F DUP ROT DO I 1+ LINE I -MOVE LOOP E ;                : M                                                               R# +! CR SPACE #LEAD TYPE 5F EMIT                               #LAG TYPE #LOCATE . DROP ;                                    : T                                                               DUP C/L * R# ! DUP H 0 M ;                                    : L                                                               SCR @ LIST 0 M ;      -->                                     ( fig-FORTH PORTABLE EDITOR, continued )                        : R                                                               PAD 1+ SWAP -MOVE ;                                           : P                                                               1 TEXT R ;                                                    : I                                                               DUP S R ;                                                     : TOP                                                             0 R# ! ;                                                      : CLEAR                                                           SCR ! 10 0 DO FORTH I EDITOR E LOOP ;                         : COPY                                                            B/SCR *            SWAP B/SCR * B/SCR OVER + SWAP               DO DUP FORTH I BLOCK 2 - ! 1+ UPDATE LOOP                       DROP FLUSH ;                                                    -->                                                           ( fig-FORTH PORTABLE EDITOR, continued )                        : 1LINE ( scan line with cursor for match to PAD text )                 ( update cursor, return boolean )                         #LAG PAD COUNT MATCH R# +! ;                                  : FIND ( string at PAD over full screen, else error )             BEGIN 3FF R# @ < IF TOP PAD HERE C/L 1+ CMOVE 0 ERROR           ENDIF 1LINE UNTIL ;                                           : DELETE ( backwards at cursor by count-1 )                       >R #LAG + FORTH R -    ( save blank fill location )             #LAG R MINUS R# +!     ( backup cursor )                        #LEAD + SWAP CMOVE R> BLANKS UPDATE ; ( fill from end )       : N ( find next occurence of previous text  )                     FIND 0 M ;                                                    : F ( find occurence of text )                                   1 TEXT N ;                                                     -->                                                             ( fig-FORTH PORTABLE EDITOR, continued )                        : B ( BACKUP CURSOR BY TEXT IN PAD )                              PAD C@ MINUS M ;                                              : X ( delete following text )                                     1 TEXT FIND PAD C@ DELETE 0 M ;                               : TILL ( delete from cursor to text end on this line )            #LEAD + 1 TEXT 1LINE 0= 0 ?ERROR                                #LEAD + SWAP - DELETE 0 M ;                                   : C ( spread at cursor and copy in following text )               1 TEXT PAD COUNT #LAG ROT OVER MIN >R FORTH R R# +!             R - >R DUP HERE R CMOVE HERE #LEAD + R> CMOVE                   R> CMOVE UPDATE 0 M ;                                         FORTH DEFINITIONS DECIMAL   LATEST 12 +ORIGIN ! ( TOP NFA )     HERE 28 +ORIGIN ! ( FENCE ) HERE 30 +ORIGIN ! ( DP )            ' EDITOR 6 + 32 +ORIGIN ! ( VOC-LINK )                          HERE FENCE ! ;S